package com.juli.school.service.impl;

import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.google.common.base.Strings;
import com.juli.school.dao.entity.Login;
import com.juli.school.dao.mapper.LoginMapper;
import com.juli.school.service.bo.LoginBo;
import com.juli.school.utils.core.model.CommonResp;

/**
 * @Description: 登录服务接口
 * @author gaoxiang
 * @date 2018年1月8日 上午11:51:11
 */ 
@Service
public class LoginService {
	
	private final static Logger logger = LoggerFactory.getLogger(LoginService.class);
	
	@Resource
	LoginMapper loginMapper;
	
	public CommonResp<Login> getLoginUserByUid(String loginId) {
		CommonResp<Login> commonResp = new CommonResp<Login>();
		if(Strings.isNullOrEmpty(loginId)) {
			commonResp.fail("登录ID不可为空");
			return commonResp;
		}
		LoginBo loginBo = new LoginBo();
		loginBo.setLoginId(loginId);
		return getLoginUser(loginBo);
	}
	
	/**
	 * @Description: 多条件查询登录用户信息
	 * @author gaoxiang
	 * @date 2017年12月27日 下午5:59:58
	 */
	public CommonResp<Login> getLoginUser(LoginBo loginBo) {
		CommonResp<Login> commonResp = new CommonResp<Login>();
		try {
			Login login = loginMapper.get(loginBo);
			if(login == null) {
				commonResp.fail("获取用户【"+loginBo.getLoginId()+"】信息失败，用户不存在");
			} else {
				commonResp.success();
				commonResp.setData(login);
			}
		} catch (Exception e) {
			logger.error("获取登录用户信息异常",e);
			commonResp.exception("获取登录用户信息异常:"+e.toString());
		}
		return commonResp;
	}

	public CommonResp<String> saveTrdPartyLoginInfo(LoginBo loginBo) {
		CommonResp<String> commonResp = new CommonResp<String>();
		//非空校验
		if(Strings.isNullOrEmpty(loginBo.getLoginId())) {
			commonResp.fail("登录名不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getLoginPwd())) {
			commonResp.fail("登录密码不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getPhone())) {
			commonResp.fail("手机号不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getLoginType())) {
			commonResp.fail("登录类型不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getStuId())) {
			commonResp.fail("学生ID不可为空");
			return commonResp;
		}
		try {
			loginMapper.insert(loginBo);
			commonResp.success();
		} catch (Exception e) {
			logger.error("获取登录用户信息异常",e);
			commonResp.exception("获取登录用户信息异常:"+e.toString());
		}
		return commonResp;
	}

	/**
	 * @Description: 校验登录
	 * @author gaoxiang
	 * @date 2017年12月27日 下午7:47:13
	 */
	public CommonResp<Login> checkLogin(LoginBo loginBo) {
		CommonResp<Login> commonResp = new CommonResp<Login>();
		if(Strings.isNullOrEmpty(loginBo.getLoginId())) {
			commonResp.fail("登录名不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getLoginPwd())) {
			commonResp.fail("登录密码不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getPhone())) {
			commonResp.fail("手机号不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(loginBo.getLoginType())) {
			commonResp.fail("登录类型不可为空");
			return commonResp;
		}
		return getLoginUser(loginBo);
	}
}
